-2 >>> -2  : <?= j2p_ursh(-2, -2) ?> 
-2 >>> -1  : <?= j2p_ursh(-2, -1) ?> 
-2 >>> 0   : <?= j2p_ursh(-2, 0) ?> 
-2 >>> 1   : <?= j2p_ursh(-2, 1) ?> 
-2 >>> 2   : <?= j2p_ursh(-2, 2) ?> 
-1 >>> -2  : <?= j2p_ursh(-1, -2) ?> 
-1 >>> -1  : <?= j2p_ursh(-1, -1) ?> 
-1 >>> 0   : <?= j2p_ursh(-1, 0) ?> 
-1 >>> 1   : <?= j2p_ursh(-1, 1) ?> 
-1 >>> 2   : <?= j2p_ursh(-1, 2) ?> 
0 >>> -2   : <?= j2p_ursh(0, -2) ?> 
0 >>> -1   : <?= j2p_ursh(0, -1) ?> 
0 >>> 0    : <?= j2p_ursh(0, 0) ?> 
0 >>> 1    : <?= j2p_ursh(0, 1) ?> 
0 >>> 2    : <?= j2p_ursh(0, 2) ?> 
1 >>> -2   : <?= j2p_ursh(1, -2) ?> 
1 >>> -1   : <?= j2p_ursh(1, -1) ?> 
1 >>> 0    : <?= j2p_ursh(1, 0) ?> 
1 >>> 1    : <?= j2p_ursh(1, 1) ?> 
1 >>> 2    : <?= j2p_ursh(1, 2) ?> 
2 >>> -2   : <?= j2p_ursh(2, -2) ?> 
2 >>> -1   : <?= j2p_ursh(2, -1) ?> 
2 >>> 0    : <?= j2p_ursh(2, 0) ?> 
2 >>> 1    : <?= j2p_ursh(2, 1) ?> 
2 >>> 2    : <?= j2p_ursh(2, 2) ?> 

-2 >>> -2 >>> 2 : <?= j2p_ursh(j2p_ursh(-2, -2), 2) ?> 
-2 >>> -1 >>> 1 : <?= j2p_ursh(j2p_ursh(-2, -1), 1) ?> 
-2 >>> 0 >>> 0  : <?= j2p_ursh(j2p_ursh(-2, 0), 0) ?> 
-2 >>> 1 >>> -1 : <?= j2p_ursh(j2p_ursh(-2, 1), -1) ?> 
-2 >>> 2 >>> -2 : <?= j2p_ursh(j2p_ursh(-2, 2), -2) ?> 

-1 >>> -2 >>> 2 : <?= j2p_ursh(j2p_ursh(-1, -2), 2) ?> 
-1 >>> -1 >>> 1 : <?= j2p_ursh(j2p_ursh(-1, -1), 1) ?> 
-1 >>> 0 >>> 0  : <?= j2p_ursh(j2p_ursh(-1, 0), 0) ?> 
-1 >>> 1 >>> -1 : <?= j2p_ursh(j2p_ursh(-1, 1), -1) ?> 
-1 >>> 2 >>> -2 : <?= j2p_ursh(j2p_ursh(-1, 2), -2) ?> 

-2 >> -2 >>> 2 : <?= j2p_ursh(-2 >> -2, 2) ?> 
-2 >> -1 >>> 1 : <?= j2p_ursh(-2 >> -1, 1) ?> 
-2 >> 0 >>> 0  : <?= j2p_ursh(-2 >> 0, 0) ?> 
-2 >> 1 >>> -1 : <?= j2p_ursh(-2 >> 1, -1) ?> 
-2 >> 2 >>> -2 : <?= j2p_ursh(-2 >> 2, -2) ?> 

-1 >> -2 >>> 2 : <?= j2p_ursh(-1 >> -2, 2) ?> 
-1 >> -1 >>> 1 : <?= j2p_ursh(-1 >> -1, 1) ?> 
-1 >> 0 >>> 0  : <?= j2p_ursh(-1 >> 0, 0) ?> 
-1 >> 1 >>> -1 : <?= j2p_ursh(-1 >> 1, -1) ?> 
-1 >> 2 >>> -2 : <?= j2p_ursh(-1 >> 2, -2) ?> 

-2 >>> -2 >> 2 : <?= j2p_ursh(-2, -2) >> 2 ?> 
-2 >>> -1 >> 1 : <?= j2p_ursh(-2, -1) >> 1 ?> 
-2 >>> 0 >> 0  : <?= j2p_ursh(-2, 0) >> 0 ?> 
-2 >>> 1 >> -1 : <?= j2p_ursh(-2, 1) >> -1 ?> 
-2 >>> 2 >> -2 : <?= j2p_ursh(-2, 2) >> -2 ?> 

-1 >>> -2 >> 2 : <?= j2p_ursh(-1, -2) >> 2 ?> 
-1 >>> -1 >> 1 : <?= j2p_ursh(-1, -1) >> 1 ?> 
-1 >>> 0 >> 0  : <?= j2p_ursh(-1, 0) >> 0 ?> 
-1 >>> 1 >> -1 : <?= j2p_ursh(-1, 1) >> -1 ?> 
-1 >>> 2 >> -2 : <?= j2p_ursh(-1, 2) >> -2 ?> 

1 > 2 >>> 3          : <?= 1 > j2p_ursh(2, 3) ? "true" : "false" ?> 
1 >> 2 >>> 3         : <?= j2p_ursh(1 >> 2, 3) ?> 
1 >>> 2 >> 3         : <?= j2p_ursh(1, 2) >> 3 ?> 
1 + 2 >>> 3          : <?= j2p_ursh(1 + 2, 3) ?> 
2 + 3 >>> 2 + 4      : <?= j2p_ursh(2 + 3, 2 + 4) ?> 
5 * 2 + 3 >>> -2 + 4 : <?= j2p_ursh(5 * 2 + 3, -2 + 4) ?> 

<?
/* int */ $i = -3; /* int */ $j = -4;
?> 

i >>>= 1             : <?= $i = j2p_ursh($i, 1) ?> 
i >>>= i             : <?= $i = j2p_ursh($i, $i) ?> 
i >>>= --i           : <?= $i = j2p_ursh($i, --$i) ?> 
i >>>= i--           : <?= $i = j2p_ursh($i, $i--) ?> 
j >>>= -2 + i >>> -4 : <?= $j = j2p_ursh($j, j2p_ursh(-2 + $i, -4)) ?> 

<?
// jsp2php add ons
function j2p_ursh($num, $sh) { return $num >= 0 ? $num >> $sh : (int) ( ($num >> $sh) + (2 << ~$sh) ); }
?>
